# def happy_birthday(name, age):
#     print('祝' + name + '生日快乐')
#     print(str(age) + '岁生日快乐！')


# happy_birthday('lily', 18)
# happy_birthday('lily')  # 位置传参，参数的个数得一致
# happy_birthday(18, 'lily') # 位置传参，参数的顺序得一致
# happy_birthday(age=18, name='lily') # 关键字传参，参数名称必须与定义一致


# 默认值参数
def happy_birthday(name='小红', age=26):
    print('祝' + name + '生日快乐')
    print(str(age) + '岁生日快乐！')


happy_birthday()  # 不用传参
happy_birthday('娇娇')
happy_birthday(age=19)
# happy_birthday(19)  # 报错。19被传给了name


# 位置参数和关键字参数同时存在时，应遵循位置参数在前，默认值在后
def fun(a, b=20):
    pass

# 位置参数在后，默认值在前，则报错
# def fun(a=20, b):  # 报错了
#     pass
